import { _decorator, Component, Node, sp } from 'cc';
const { ccclass, property } = _decorator;

@ccclass('ImageSpine')
export class ImageSpine extends Component {

    @property({
        type: [sp.SkeletonData],
        tooltip: "Spine动画的随机数组",
    })
    spines: sp.SkeletonData[] = [];

    private skel: sp.Skeleton | null = null;

    async onLoad() {
        this.skel = this.node.getComponent(sp.Skeleton);
        if (!this.skel) {
            console.error("该节点上没有添加 Spine 组件！");
            return;
        }

        // 在加载时设置一个随机的动画
        this.setRandom();
    }

    /** 设置图片动画 */
    setDice(index: number) {
        console.log("给图片设置的数字", index);
        if (this.skel && this.spines[index]) {
            // 设置当前的SkeletonData
            this.skel.skeletonData = this.spines[index];
            // 使用动画名称播放动画，确保你知道要播放的动画名称
            let animationName = "HJ"; // 替换为你实际的动画名称
            // 设置为静态的首帧
            // this.skel.setBonesToSetupPose(); // 将骨骼动画重置为初始状态
            // 如果想要在特定情况下播放动画，可以使用以下代码：
            this.skel.setAnimation(0, animationName, true); // 播放动画并循环
        }
    }

    /** 随机生成 */
    setRandom() {
        // if (this.spines.length > 0) {
        //     const randomIndex = Math.floor(Math.random() * this.spines.length);
        //     this.setDice(randomIndex);
        // }
    }

    update(deltaTime: number) {
        // 这里可以添加每帧需要更新的逻辑
    }
}